package classes;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import Exceptions.DadosInsuficientesExceptions;
import Exceptions.SomenteNumerosException;
import classes.Categoria;


public class TratamentoDeErros {
	
	public TratamentoDeErros(){
		
	}

	protected static String validaString(String str) throws DadosInsuficientesExceptions {
		if (str == null){
			throw new DadosInsuficientesExceptions("Todos os dados sao necessarios!");
		}
		
		str.toLowerCase();
		str.trim();
		
		
		if("".equals(str)){
			throw new DadosInsuficientesExceptions("Todos os dados sao necessarios!");
		}
		return str;
	}
	
	protected static Categoria validaCategoria(Categoria categoria) throws DadosInsuficientesExceptions{
		if (categoria == null) {
			throw new DadosInsuficientesExceptions("Categoria invalida.");
		}		
		
		if (categoria != categoria.JOGO && categoria != categoria.LIVRO && categoria != categoria.FILME){
			throw new DadosInsuficientesExceptions("Categoria invalida.");
		}
		
		return categoria;
		
	}
	
	protected static String recebeSomenteNumeros(String str) throws DadosInsuficientesExceptions, SomenteNumerosException{
		if (str == null){
			throw new DadosInsuficientesExceptions("Esse dado deve conter apenas numeros");
		}
		str.toLowerCase();
		str.trim();
		Pattern pattern = Pattern.compile("[a-z]");  
	    Matcher match = pattern.matcher(str);
	    
	    if("".equals(str)){
			throw new DadosInsuficientesExceptions("Esse dado deve conter apenas numeros");
		}
	    
		if(match.find()){
			throw new SomenteNumerosException("Esse dado deve conter apenas numeros");
		}
		
		return str;
		
	}
	
	
}
